package com.datastructures2.背包队列栈;

/**
 * @author MaoLin Wang
 * @date 2020/2/2822:49
 */
public class Tes {
    public static void main(String[] args) {
        //记录找到的反序数个数
        int count = 0;
        for (int i = 1000; i < 10000; i++) {
            //得到i的反序数reverseNum
            int reverseNum = reverseNum(i);
            if (i * 9 == reverseNum) {
                //如果该反序数是该数的9倍，则找到了
                System.out.println("找到第" + count + "个反序数:" + i);
            }
        }

    }
    /**
     * 查找num的反序数
     */
    private static int reverseNum(int num) {
        int remainder;   //余数
        int reNumber = 0;    //逆序数
        while (num != 0) {
            //每次都取num的个位数
            remainder = num % 10;
            //num每次循环减10倍
            num = num / 10;
            //逆序数每次用原来的值乘10后加上新的余数
            reNumber = reNumber * 10 + remainder;
            /*
                举例： 1234:
                    第一次循环: remainder=1234 % 10 =4; num =num/10=123; reNumber=0*10+4=4;
                    第二次循环：remainder=123 % 10 =3; num =num/10=12; reNumber=4*10+3=43;
                    第三次循环：remainder=12 % 10 =2; num =num/10=1; reNumber=43*10+2=432;
                    第四次循环：remainder=1 % 10 =1; num =num/10=0; reNumber=432*10+1=4321;
                    第五循环： num=0了，因此直接结束
                    得到反序数为4321
             */
        }
        return reNumber;
    }
}
